Packet switches (hereafter, also switches) transfer packets from their inputs to the specified outputs. A packet switch would become congested when the input traffic exceeds the capacity it can serve, the latter being referred to as switch throughput and is usually expressed in packet per seconds (pps).
Typical scenarios include: (1) Switches with physical interfaces (a.k.a., ports) that together provide a larger capacity than what the internal switching hardware (HW) supports, regardless of packet size. For example, a vendor may offer a switch card with 4 ports of 10 Gbps (total of 40 Gbps) while its throughput is only 20 Gbps. This may be acceptable by customers who assume that it is rare that the switch would face traffic arriving at wire speed simultaneously from all ports (2) Switches with packet-dependent throughput, where the switch would become congested upon large bursts of short packets (e.g., packet size of 64 bytes). For example, a switch may possess an interface capacity of 40 Gbps, and would easily handle a 40 Gbps input of large packets (e.g., packet size of 1500 bytes), but would become congested upon 40 Gbps input of 64-byte packets. This fact indicates that resources of the switch are mostly spent for processing packet headers (that are similar for all packets), and much less for processing their payload.
Congestion at input would typically be detected by a small queue (a.k.a., ingress buffer) that is shared by all the input traffic, and its packets are processed one at a time at their respective arrival order, in a first in first out (FIFO) fashion. In the event of congestion at input, the ingress buffer would overflow and the switch would start discarding any further packets, until a room is again available at the ingress buffer. These discards are made randomly, meaning regardless of whether a packet belongs to a low or high importance service.
Discarding packets randomly is generally disfavored. It ignores the today's trend to differentiate between services that service provider use to offer to their customers. This differentiation is achieved by associating quality of service (QoS) per service. A high QoS service would normally cost more than a low QoS service, due to the additional resources allocated to maintain its elevated quality. Typical examples for high QoS traffic are voice over IP (VoIP) and video, while low QoS traffic could be high-speed Internet (HSI). HSI uses reliable delivery protocols such as TCP, and would regenerate packets if lost or discarded. In comparison, VoIP and video are delay-sensitive real-time protocol which do not regenerate packets, and therefore high delays and packet lost could seriously degrade a phone conversation or a video movie.
Dongsook Kim et al. “Distibuted Admission Control via Dual-Queue Management” describes a queue management framework via the use of connection level information already embedded in existing data traffic. To improve the system performance and resource utilization at times of intense network congestion, data packets and connection establishment packets are queued separately. Different queuing and dropping policies can then be applied to them, thus the term “dual queue management” is used.
The approach described in the paper requires sorting the traffic at the input into two traffic flows (data packets and connection establishment packets), and consequent different packet processing for each flow in case of congestion. This solution disregards packet QoS, and queues packets based on whether they belong to established connections or not. Most importantly, it requires two separate queues at the input and an entity that would process packets (i.e., find out whether they belong to established connections) before it queues them in one of the two queues. This pre-queuing processing entity is typically not available in switches, particularly not in off-the-shelf programmable switches (a.k.a., Network Processors).
Young-Keun Park et al. “A High Throughput Packet-Switching Network with Neural Network Controlled Bypass Queueing and Multiplexing” (Parallel Processing, 1994. ICPP 1994. International Conference, Volume 1, Issue, 15-19 Aug. 1994 Page(s):9-12. Digital Object Identifier 10.1109/ICPP.1994.31) proposes a high throughput packet switching network with bypass queues based on a MN. The switch throughput is improved by partitioning the input buffers into disjoint buffer sets and multiplexing several sets of non-blocking packets within a time slot. A neural network model is presented as a controller for packet scheduling and multiplexing in the switch.
Like the previous reference, the solution also partitions the input traffic to separate queues and requires a pre-queuing processing entity.
US2004213265A relates to a device for processing packets of flows on a network link, the device including scheduling means for scheduling packets in a queue in accordance with a fair queuing with priority algorithm. The admission control requires pre-processing on each arriving packet, and if it passes it is queued in a FIFO queue. It then analyzes state of the FIFO queue and makes scheduling decisions based on the state. Admission control also can reject an already queued packet upon arrival of another. Like the previous references, this method requires a pre-queuing processing entity. The rejection of queued packets requires special implementation that is generally not available in off-the-shelf switches.
US US2008291935A describes a system for selectively discarding packets in a network device. The method includes receiving an upstream bandwidth saturation indicator for a queue in the network device, and identifying one or more codecs employed in packets in the queue when the upstream bandwidth saturation indicator indicates saturation. The method further includes determining a packet discarding policy based on the one or more codecs, and discarding packets in accordance with the packet discarding policy. However, it is just a finer grade of discarding at the output queue. The saturation condition occurs not because of limited packet processing power of the switch but because of congestion at the output queue (upstream BW).
To the best of the Applicant's knowledge, neither of the prior art references efficiently solves the problem of handling traffic congestion at the input of a telecommunication switch without the use of pre-queuing processing entity. In other words, there is no efficient and judicious technique of discarding packets from a common input queue (comprising non-differentiated, all incoming packets) of a switch having a limited throughput and experiencing congestion at the input.